package ink.lovejinhu.leetcode;

import org.junit.Test;

/**
 * @author jinhu
 * created 2021-05-06 10:43
 */
public class Solution_0066 {
    public int[] plusOne(int[] digits) {
        int temp = digits[digits.length - 1];
        temp++;
        if (temp < 10) {   //无进位
            digits[digits.length - 1]++;
            return digits;
        }
        //有进位
        int[] tempArray = new int[digits.length + 1];
        tempArray[0] = 0;
        tempArray[tempArray.length - 1] = temp - 10;
        int flag = 1;//进位标志
        for (int i = digits.length - 2; i >= 0; i--) {  //循环加
            int tempVar = digits[i] + flag;
            if (tempVar >= 10) {
                tempArray[i + 1] = tempVar - 10;
                flag = 1;
            } else {
                flag = 0;
                tempArray[i + 1] = tempVar;
            }
        }
        for (int i:tempArray
             ) {
            System.out.print(i+"---");
        }
        System.out.println();
        //flag
        tempArray[0] = tempArray[0] + flag;
        if (tempArray[0] == 1) {
            return tempArray;
        } else {
            for (int i = 1; i < tempArray.length ; i++) {
                digits[i - 1] = tempArray[i];
            }
            return digits;
        }

    }

    @Test
    public void test() {
        int[] digits = {9, 9, 9};
       // int[] ints = this.plusOne(digits);
        int[] digit1={8,9,9,9};
        this.plusOne(digit1);
//        for (int temp : ints
//        ) {
//            System.out.println(temp);
//        }
    }
}
